<template>
  <template v-for="menu in menuList" :key="menu.id">
    <!-- 有子菜单的菜单项 -->
    <el-sub-menu v-if="menu.children && menu.children.length > 0" :index="menu.path">
      <template #title>
        <el-icon v-if="menu.icon">
          <component :is="menu.icon" />
        </el-icon>
        <span>{{ menu.name }}</span>
      </template>
      <!-- 递归渲染子菜单 -->
      <DynamicMenu :menu-list="menu.children" />
    </el-sub-menu>
    
    <!-- 无子菜单的菜单项 -->
    <el-menu-item v-else :index="menu.path">
      <el-icon v-if="menu.icon">
        <component :is="menu.icon" />
      </el-icon>
      <template #title>{{ menu.name }}</template>
    </el-menu-item>
  </template>
</template>

<script setup lang="ts">

// 定义组件属性
interface Props {
  menuList: any[]
}

const { menuList } = defineProps<Props>()

</script>